import request from './request'

// 与用户相关的接口
export const userApi = {
    // 注册
    register(data) {
        return request({
            url: '/app/user/registerV2',
            method: 'post',
            data
        })
    },

    // 发送验证码
    sendSmsCode(data) {
        return request({
            url: '/app/user/sendSmsCode',
            method: 'post',
            data
        })
    },

    // 手机+密码登录
    passwordAndCodeLogin(data) {
        return request({
            url: `/app/user/${data.path}`,
            method: 'post',
            data: data.data
        })
    },

    // 获取用户信息
    getUserInfo() {
        return request({
            url: '/app/user/userInfo',
            method: 'get'
        })
    },

    // 热门博主
    getHotBlogger(data) {
        return request({
            url: `/app/user/v2/getHotUserList?pageNo=${data.pageNo}&pageSize=${data.pageSize}&timeRange=${data.timeRange}&keyword=${data.keyword}`,
            method: 'get'
        }) 
    },

    // 关注
    followAdd(data) {
        return request({
            url: '/app/user/addFollow',
            method: 'post',
            data
        })
    },

    // 取消关注
    followCancel(data) {
        return request({
            url: '/app/user/cancelFollow',
            method: 'post',
            data
        }) 
    },

    // 获取我的证书列表
    getMyCertificateList(data) {
        return request({
            url: `/app/certificate/myself/page?pageNo=${data.pageNo}&pageSize=${data.pageSize}`,
            method: 'get'
        }) 
    },

    // 根据用户id获取证书列表
    getCertificateListByUid(data) {
        return request({
            url: `/app/certificate/page?pageNo=${data.pageNo}&pageSize=${data.pageSize}&userId=${data.userId}`,
            method: 'get'
        })
    },

    // 根据uid获取用户信息
    getUserInfoByUid(data) {
        return request({
            url: '/app/user/userInfoById',
            method: 'post',
            data
        })
    },

    // 修改个人资料
    updateUserInfo(data) {
        return request({
            url: '/app/user/userInfoEdit',
            method: 'post',
            data
        })
    }


}


// 与帖子相关的接口
export const postApi = {
    // 获取版块列表
    getForumList() {
        return request({
            url: '/app/plate/tree',
            method: 'get'
        })
    },

    // 获取分类列表
    getCategoryList() {
        return request({
            url: '/app/forum/category/tree',
            method: 'get'
        })
    },

    // 保存帖子
    savePost(data) {
        return request({
            url: '/app/post/addPost',
            method: 'post',
            data
        })
    },

    // 根据板块查询对应的帖子
    getPratPostList(data) {
        return request({
            url: '/app/post/getPostListByPlateId',
            method: 'post',
            data
        })
    },

    // 最新动态帖子
    getNewPostList(data) {
        return request({
            url: '/app/post/latest?pageNo='+data.pageNo+'&pageSize='+data.pageSize,
            method: 'get'
        })
    },

    // 获取各种类型帖子
    getPostList(data) {
        return request({
            url: `/app/post/recommend?isRecommend=${data.isRecommend}&sortField=${data.sortField}&sortOrder=${data.sortOrder}&keyword=${data.keyword}&pageNo=${data.pageNo}&pageSize=${data.pageSize}`,
            method: 'get'
        })
    },

    // 查看帖子详情
    getPostDetail(id) {
        return request({
            url: '/app/post/detail?id='+id,
            method: 'get'
        }) 
    },

    // 获取TA的帖子
    getSomeoneList(data) {
        return request({
            url: '/app/post/userPosts',
            method: 'post',
            data
        })
    },

    // 我的帖子
    getMyPostList(data) {
        return request({
            url: '/app/post/myPost?pageNo='+data.pageNo+'&pageSize='+data.pageSize,
            method: 'get'
        })  
    },

    // 保存草稿
    saveDraft(data) {
        return request({
            url: '/app/draft/save',
            method: 'post',
            data
        }) 
    },

    // 获取我的草稿
    getMyDraftList(data) {
        return request({
            url: '/app/draft/list?pageNo='+data.pageNo+'&pageSize='+data.pageSize,
            method: 'get'
        })
    },

    // 删除草稿
    deleteDraft(id) {
        return request({
            url: `/app/draft/delete/${id}`,
            method: 'post'
        }) 
    },

    // 获取草稿详情
    getDraftDetail(id) {
        return request({
            url: `/app/draft/detail/${id}`,
            method: 'get'
        }) 
    },

    // 更新草稿
    updateDraft(data) {
        return request({
            url: `/app/draft/update/${data.draftId}`,
            method: 'post',
            data
        })
    },

    // 发布草稿
    publishDraft(id) {
        return request({
            url: `/app/draft/publish/${id}`,
            method: 'post'
        })  
    }


}


// 与评论相关的接口
export const commentApi = {
    // 新增评论
    addComment(data) {
        return request({
            url: '/app/post/addComment',
            method: 'post',
            data
        })
    },

    // 获取评论列表
    getCommentList(data) {
        return request({
            url: '/app/comment/list?postId='+data.id+'&page='+data.page,
            method: 'get'
        }) 
    },

    // 子评论列表
    getSubCommentList(id) {
        return request({
            url: '/app/comment/remainComment?id='+id,
            method: 'get'
        })
    },

    // 点赞
    addLike(data) {
        return request({
            url: '/app/comment/thumbs',
            method: 'post',
            data
        })
    },

    // 取消点赞
    cancelLike(data) {
        return request({
            url: '/app/comment/cancelThumbs',
            method: 'post',
            data
        })
    }

}

// 文件上传接口
export const upload = {
    uploadImg(data) {
        return request({
            url: '/app/common/upload',
            method: 'post',
            data
        })
    }
}


// 其他接口
export const otherApi = {
   // 轮播图
   getCarouselImages() {
        return request({
            url: '/app/link/list',
            method: 'post',
            data: {cateId: 0}
        })
   },

   // 获取消息通知数量
   getMessageCount() {
        return request({
            url: '/app/message/num',
            method: 'get'
        })
   },

   // 获取消息通知列表
   getMessageList(data) {
        return request({
            url: `/app/message/list?page=${data.pageNo}&type=`,
            method: 'get'
        })
   },

   // 设置消息已读
   setMessageRead() {
        return request({
            url: `/app/message/status`,
            method: 'post'
        }) 
   }

}